package com.liuyi.netty.im.server.handle.cluster;

import com.liuyi.netty.im.commons.codes.CodeConst;

import java.util.HashMap;
import java.util.Map;

/**
 * 消息处理管理器
 *
 * @author Mr.Fmy
 * @since 2021/12/25
 */
public class ClusterMessageDisposeManage {

    private final static Map<CodeConst.EventToType, ClusterMessageDispose> MAP = new HashMap<>();

    /**
     * 注册消息处理器
     *
     * @param toType toId类型
     * @param pair   处理器
     */
    public static void registered(CodeConst.EventToType toType, ClusterMessageDispose pair) {
        MAP.put(toType, pair);
    }


    /**
     * 获取消息处理器
     *
     * @param toType toId类型
     * @return ClusterMessageDispose
     */
    public static ClusterMessageDispose get(CodeConst.EventToType toType) {
        if (!MAP.containsKey(toType)) {
            throw new IllegalArgumentException("ToType NotFound Event：" + toType);
        }
        return MAP.get(toType);
    }
}
